31 research outputs found

    A Formal Framework for Precise Parametric WCET Formulas

    Get PDF
    Parametric worst-case execution time (WCET) formulas are a valuable tool to estimate the impact of input data properties on the WCET at design time, or to guide scheduling decisions at runtime. Previous approaches to parametric WCET analysis either provide only informal ad-hoc solutions or tend to be rather pessimistic, as they do not take flow constraints other than simple loop bounds into account. We develop a formal framework around path- and frequency expressions, which allow us to reason about execution frequencies of program parts. Starting from a reducible control flow graph and a set of (parametric) constraints, we show how to obtain frequency expressions and refine them by means of sound approximations, which account for more sophisticated flow constraints. Finally, we obtain closed-form parametric WCET formulas by means of partial evaluation. We developed a prototype, implementing our solution to parametric WCET analysis, and compared existing approaches within our setting. As our framework supports fine-grained transformations to improve the precision of parametric formulas, it allows to focus on important flow relations in order to avoid intractably large formulas

    Towards Automated Generation of Time-Predictable Code

    Get PDF
    Knowledge of the worst-case execution time of software components is essential in safety-critical hard real-time systems. The analysis thereof is not trivial as the execution time depends on many factors, including the underlying hardware platform, the program structure, and the code produced by the compiler. Often, the execution time is variable and highly sensitive to the input data the program has to process. This paper presents a code transformation applicable in a compiler backend that produces time-predictable code. The resulting code contains a single input-data independent execution path, in order to obtain programs of stable timing behaviour. The transformation technique has been validated by applying it on a number of benchmarks. Experiments show a reduction of execution time variability, at acceptable costs for the single execution path

    Best practice for caching of single-path code

    Get PDF
    Single-path code has some unique properties that make it interesting to explore different caching and prefetching alternatives for the stream of instructions. In this paper, we explore different cache organizations and how they perform with single-path code

    Patmos: a time-predictable microprocessor

    Get PDF

    A light-weight parallel execution layer for shared-memory stream processing

    No full text
    Zsfassung in dt. SpracheIn den letzten Jahren haben sich zunehmend Mehrkernprozessoren im Bereich der Universalrechner etabliert. Um die Vorteile der zunehmend ansteigenden Anzahl von Rechenkernen nutzen zu können, sind Programmierparadigmen notwendig, welche die Ableitung von Nebenläufigkeiten erleichtern bzw. erst ermöglichen.S-Net ist eine deklarative Koordinationssprache, deren Ziel es ist, die Programmierung von Nebenläufigkeit und die Programmierung von Programmlogik zu trennen. Es wird die Koordination von Netzen bestehend aus asynchronen, zustandslosen Komponenten, sogenannten "Boxen", die mittels typisierter Datenströme verbunden sind, definiert. Boxen werden in einer konventionellen Programmiersprache geschrieben und haben einen einzigen Eingangs- und einen einzigen Ausgangsdatenstrom. Netzwerke werden in SNet durch algebraische Formeln ausgedrückt, bestehend aus vier Kombinatoren, nämlich serieller und paralleler Komposition, sowie serieller und paralleler Replikation.Das Ziel dieser Arbeit ist es, das bestehende Laufzeitsystem dahingehend zu erweitern, dass es zwei Anforderungen genügt. Erstens soll es ermöglicht werden, Informationen über die Ausführungszeiten der Laufzeitkomponenten oder die Auslastung der Kommunikationskanäle zu sammeln. Zweitens soll es die Möglichkeit zur Kontrolle des Schedulings der Komponenten geben.Durch Recherche von bestehenden Systemen, welche auf Datenstromverarbeitung basieren, und insbesondere deren Laufzeitsystemen, wurden Konzepte für eine neue Ausführungsschicht erarbeitet. Ein Light-weight Parallel Execution Layer (LPEL), d.h. eine leichtgewichtige parallele Ausführungsschicht, wurde entwickelt, welche Komponenten, die mittels gerichteter und gepufferter Datenströme kommunizieren, auf User-Ebene verwaltet, wobei besonderes Augenmerk auf die Anforderungen des S-Net Modells gelegt werden musste.Mechanismen, die dem Stand der Technik entsprechen, z.B. nebenläufige Datenstrukturen und Lock-free Algorithmen, wurden bei der Umsetzung verwendet.Um die Konzepttauglichkeit nachzuweisen, wurde die Ausführungsschicht als Programmbibliothek in der Programmiersprache C entwickelt, und das bestehende S-Net Laufzeitsystem darauf portiert. Experimente mit der neuen Schicht zeigen eine effiziente Ressourcennutzung selbst bei vielen zu verwaltenden Komponenten. Die zur Laufzeit gewonnene Information kann erfolgreich verwendet werden, um den erforderlichen Rechenaufwand der Komponenten zu ermitteln, sowie um anwendungsspezifische Scheduling- und Platzierungsstrategien abzuleiten.In recent years, multicore technology became prevalent in the area of general-purpose computing. In order to facilitate the benefits of the steadily increasing number of cores, programming paradigms are necessary that support or even enable the derivation of concurrency. S-Net is a declarative coordination language which aims to separate the concerns of computation and organisation of concurrent execution by defining the coordination behaviour of networks of asynchronous, stateless components (called "boxes") and their orderly interconnection via typed streams. Boxes are written in any conventional language, connected to the streaming network with a single input and a single output stream. Streaming networks are expressed in S-Net itself as algebraic formulae built out of four network combinators, namely serial and parallel composition, and serial and parallel replication.The aim of this thesis is to extend the multi-threaded S-Net runtime system to fulfil two requirements. First, to enable the collection of monitoring information such as execution time of components, or buffer usage along communication paths. Second, to provide a way to control scheduling of components.By analysing existing stream-processing frameworks with respect to their runtime system implementations, concepts for a new execution layer were devised. A Light-weight Parallel Execution Layer (LPEL) has been developed, which manages tasks communicating via unidirectional single-producer single-consumer buffered streams in user-space, with special focus on the requirements imposed by the S-Net model. State-of-the-art techniques, like concurrent data structures and lock-free algorithms, have been employed.As a proof of concept, the layer is implemented as a separate library in the C programming language, and S-Net is ported onto it. Experiments with the new layer show efficient resource utilisation when having to handle many components. The profiling information can be used to calculate computational costs of components as well as to derive application-specific scheduling and placement strategies.8

    Optimization of Carbon Ion Treatment Plans by Integrating Tissue Specific α/β-Values for Patients with Non-Resectable Pancreatic Cancer.

    No full text
    The aim of the thesis is to improve treatment plans of carbon ion irradiation by integrating the tissues' specific [Formula: see text]-values for patients with locally advanced pancreatic cancer (LAPC).Five patients with LAPC were included in this study. By the use of the treatment planning system Syngo RT Planning (Siemens, Erlangen, Germany) treatment plans with carbon ion beams have been created. Dose calculation was based on [Formula: see text]-values for both organs at risk (OAR) and the tumor. Twenty-five treatment plans and thirty-five forward calculations were created. With reference to the anatomy five field configurations were included. Single Beam Optimization (SBO) and Intensity Modulated Particle Therapy (IMPT) were used for optimization. The plans were analyzed with respect to both dose distributions and individual anatomy. The plans were evaluated using a customized index.With regard to the target, a field setup with one single posterior field achieves the highest score in our index. Field setups made up of three fields achieve good results in OAR sparing. Nevertheless, the field setup with one field is superior in complex topographic conditions. But, allocating an [Formula: see text]-value of 2 Gy to the spinal cord leads to critical high maximum doses in the spinal cord. The evaluation of dose profiles showed significant dose peaks at borders of the [Formula: see text]-gradient, especially in case of a single posterior field.Optimization with specific [Formula: see text]-values allows a more accurate view on dose distribution than previously. A field setup with one single posterior field achieves good results in case of difficult topographic conditions, but leads to high maximum doses to the spinal cord. So, field setups with multiple fields seem to be more adequate in case of LAPC, being surrounded by highly radiosensitive normal tissues
    corecore